/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.edu.com1263.model;

import java.io.Serializable;
import java.util.Collection;
import java.util.HashSet;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.persistence.Table;


/**
 *
 * @author Luiz Cardoso
 */
@Entity
@Table(name = "aluno")
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public class Aluno extends Usuario implements Serializable{
	private static final long serialVersionUID = 11113245657L;
	
		
	@OneToMany(cascade = { CascadeType.ALL }, mappedBy = "aluno")
	private Collection<Avalia> avaliados ;
	
	@OneToMany(cascade = { CascadeType.ALL }, mappedBy = "aluno")
	private Collection<TrabalhoPostado> postados ;
	
	@ManyToMany(mappedBy = "alunos")
	private Collection<Turma> turmas;
	
	
	public Aluno(Collection<Avalia> avaliados,
			Collection<TrabalhoPostado> postados) {
		super();
		this.avaliados = avaliados;
		this.postados = postados;
	}

	
	public Aluno(){
		avaliados = new HashSet<Avalia>();
		postados = new HashSet<TrabalhoPostado>();
	}



	public Aluno(String matAluno, String nomeAluno, String emailAluno) {
		this.matricula = matAluno;
		this.nome = nomeAluno;
		this.email = emailAluno;
	}


	public Long getId() {
		return id;
	}



	public void setId(Long id) {
		this.id = id;
	}

	public Collection<Avalia> getAvaliados() {
		return avaliados;
	}



	public void setAvaliados(Collection<Avalia> avaliados) {
		this.avaliados = avaliados;
	}



	public Collection<TrabalhoPostado> getPostados() {
		return postados;
	}



	public void settPostados(Collection<TrabalhoPostado> postados) {
		this.postados = postados;
	}


	public Collection<Turma> getTurmas() {
		return turmas;
	}


	public void setTurmas(Collection<Turma> turmas) {
		this.turmas = turmas;
	}


	public void setPostados(Collection<TrabalhoPostado> postados) {
		this.postados = postados;
	}

	
}
	
	



	
